//引入axios
import axios from "axios";
import { ElMessageBox } from "element-plus";

let http = axios.create({
  //基础地址
  baseURL: "/api",
  // 超时设置
  timeout: 1000 * 20,
  //是否携带凭据
  withCredentials: true,
});

//配置拦截器

//请求拦截器,所有的axios请求都会被拦截器拦截,可以通过拦截器添加额外的配置
http.interceptors.request.use((config) => {
  // console.log(config)
  //先获取token
  //   NProgress.start();
    let token = sessionStorage.getItem("cxk");
    config.headers.authorization = token;
  return config;
});

//响应拦截器,所有的axios响应都会被响应拦截器拦截,可以对拦截的响应进行额外的配置
//config是每个请求响应的结果,所有的请求返回的结果都需要经过这条门,才能到组件那
http.interceptors.response.use((config) => {
  if (config.data.state) {
    //响应正常
    return config;
  } else {


    //不需要弹窗提示的路径
    let excludePaths = ["/sms/send", ];
    //如果excludePaths中不包含当前的响应路径,那么不需要弹窗
    if (!excludePaths.includes(config.config.url)) {
      // 响应错误
      ElMessageBox.alert(config.data.msg, "错误提示", { type: "error" });
    }

    return Promise.reject(config.data.msg);
  }
});

export default http;
